// 引入 mongoose 模块
const mongoose = require('mongoose');  
// 获取 Schema 方法
const Schema = mongoose.Schema; 

// 创建 movieSchema
const movieSchema = new Schema({
  doubanId: {
    unique: true,  // 不重复
    type: String 
  },  // 电影 id

  category: [{
    type: Schema.Types.ObjectId,
    ref: 'Category'
  }],

  rate: Number,  // 电影评分
  title: String,  // 电影标题
  summary: String,  // 电影简介
  video: String,  // 预告片地址
  poster: String,  // 电影海报图
  cover: String,  // 预告片封面图

  videoKey: String,  // 七牛云预告片地址
  posterKey: String,  // 七牛云电影海报图
  coverKey: String,  // 七牛云预告片封面图

  rawTitle: String,  // 原始标题
  movieTypes: [ String ],  // 电影类型
  pubDate: Schema.Types.Mixed,  // 上映日期
  year: Number,  // 上映年份

  // 用于记录这条数据的信息
  meta: {
    // 这条数据的创建时间
    createdAt: {  
      type: Date,
      default: Date.now()  // 默认值
    },
    // 这条数据的更新时间
    updatedAt: {
      type: Date,
      default: Date.now()  // 默认值
    }
  }
});

// 创建中间件更新日期
movieSchema.pre('save', function (next) {
  if (this.isNew) {
    this.meta.createdAt = this.meta.updatedAt = Date.now();
  } else {
    this.meta.updatedAt = Date.now();
  }
  next();
})

// 生成数据模型
mongoose.model('Movie', movieSchema);
